#!/bin/bash

# 定义日志文件路径
LOG_DIR="/var/log/speedtest"
LOG_FILE="$LOG_DIR/speedtest_$(date +%Y-%m-%d_%H-%M-%S).log"

# 创建日志目录（如果不存在）
if [ ! -d "$LOG_DIR" ]; then
    sudo mkdir -p "$LOG_DIR"
    sudo chmod 755 "$LOG_DIR"
fi

# 检查是否已安装 speedtest-cli
echo "正在检查 speedtest-cli 是否已安装..."
if ! command -v speedtest-cli &> /dev/null; then
    echo "speedtest-cli 未安装，正在尝试安装..."
    
    # 更新包管理器并安装 speedtest-cli
    sudo apt update
    if sudo apt install speedtest-cli -y; then
        echo "speedtest-cli 安装成功！"
    else
        echo "无法通过 apt 安装 speedtest-cli，尝试使用 pip 安装..."
        
        # 使用 pip 安装 speedtest-cli
        if ! command -v pip3 &> /dev/null; then
            sudo apt install python3-pip -y || { echo "无法安装 pip3，请手动安装 speedtest-cli。"; exit 1; }
        fi
        
        pip3 install speedtest-cli || { echo "pip 安装 speedtest-cli 失败，请手动安装。"; exit 1; }
    fi
else
    echo "speedtest-cli 已安装，跳过安装步骤。"
fi

# 开始测试网速
echo "开始测试服务器网速..."
echo "-----------------------------"

# 执行 speedtest-cli 测试并将结果保存到日志文件
speedtest-cli --simple > "$LOG_FILE"

# 检查测试结果
if [ $? -eq 0 ]; then
    echo "-----------------------------"
    echo "网速测试完成！结果已保存到 $LOG_FILE"
else
    echo "网速测试失败，请检查网络连接或重新运行脚本。"
    exit 1
fi

# 设置定时任务（如果尚未设置）
CRON_JOB="0 2 * * * /bin/bash $(pwd)/$(basename $0) >> $LOG_DIR/speedtest_cron.log 2>&1"
if ! crontab -l | grep -q "$(basename $0)"; then
    echo "正在设置每天凌晨 2 点自动运行此脚本的定时任务..."
    (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
    echo "定时任务设置成功！"
else
    echo "定时任务已存在，无需重复设置。"
fi

echo "所有操作已完成！"
